def print_gomoku_board(line_count):
    """
    彻底修复：保证最后一行是横线，严格横竖交替
    :param line_count: 交叉线数量（n线棋盘 → n+1条横线，n条竖线）
    """
    # 横线结构：+---+---+...+（共line_count+1个+）
    horizontal_line = "+" + "---+" * line_count
    print(horizontal_line)  # 顶部横线
    
    # 循环打印「竖线 + 横线」（共line_count次，最后一次循环后仍打印横线）
    for _ in range(line_count):
        # 打印竖线行：|   |   |...|（共line_count+1个|）
        vertical_line = "|" + "   |" * line_count
        print(vertical_line)
        # 打印中间/底部横线（即使是最后一次循环，也要打印横线收尾）
        print(horizontal_line)

if __name__ == "__main__":
    print("===== 标准五子棋棋盘生成器（最终修复版） =====")
    while True:
        user_input = input("请输入交叉线数量（3-30，输入q退出）：")
        if user_input.lower() == "q":
            break
        if not user_input.isdigit():
            print("请输入有效整数！\n")
            continue
        line_count = int(user_input)
        if 3 <= line_count <= 30:
            break
        print("数量需在3-30之间！\n")
    
    if user_input.lower() != "q":
        print(f"\n生成 {line_count} 线五子棋棋盘如下：\n")
        print_gomoku_board(line_count)